草庐IT

C++ Qt : Check the current State of QStateMachine

全部标签

Qt C++手动创建.ui文件并且与类进行绑定

前言:有的时候做一些新的窗口时,创建完.cpp和.h后发现没有.ui文件,有些控件纯代码实现就比较费时间,而且微调很麻烦。以下时近一段时间总结的手动给类创建.ui文件并且与所创建的类进行绑定。1.首先需要在项目里添加一个QtDesignerForm选择需要的控件类型,比如QStackedWidget类型。点击创建2.在你想要创建ui的类的头文件.h里加上下面三行代码:QT_BEGIN_NAMESPACEnamespaceUi{classUi的类名;}QT_END_NAMESPACE之后添加一条头文件#includeui_(类名).h 例如:#include"ui_Test.h"之后添加一个pr

QT 之自动滚动区QScrollArea

简述QScrollArea提供了一个滚动视图到另一个部件。滚动区域用于显示一个画面中的子部件的内容。如果部件超过画面的大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。QtDesigner设计添加QScrollArea属于控件容器类,可以直接在ui中拖出来添加需要放置的控件到QScrollArea里面,然后栅格布局栅格以后调整外部大小就可以设定QScrollArea框的大小纯代码设计 mainLayout=newQVBoxLayout(this);mainLayout->setContentsMargins(11,11,11,11);scroLLArea=newQScrollArea(

Qt获取鼠标移动事件,窗口内任意位置按下鼠标左键拖动窗口

重写窗口的两个事件函数mousePressEvent和mouseMoveEvent即可:在mousePressEvent中,按下鼠标左键时,记录窗口坐标,其中窗口坐标的计算是由鼠标事件获取到鼠标在整个屏幕中的坐标(ev->globalpos()),然后再使用pos()获取到鼠标在窗口内的相对位置,两者之差就是窗口在整个屏幕上的坐标x,y。如下:在Qt中可以直接使用ev->globalPos()-pos(),两者相减获取到程序窗口在屏幕上的坐标(x,y);在mouseMoveEvent中,事件是不断实时触发的,通过move方法传入实时计算的窗口目标位置,然后实时刷新移动窗口;voidDialog

【[Qt]基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动】

[Qt]基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动等操作前言先来看演示视频控件类实现控件类的使用如果还是看不懂、建议直接下载源代码前言这是一个Qt平台的基于QGraphicsView类的图像显示控件,支持输入QPixmap、QImage、opencv的从cv::Mat类。实现平台:Windows10x64+Qt6.2.3+MSVC2019+opencv4.5先来看演示视频控件类实现ImageViewer.h文件#ifndefIMAGEVIEWER_H#defineIMAGEVIEWER_H#include#include#include#include#includ

QT中QTableView对单个单元格操作的方法

文章目录前言一、设置单元格的方法二、获取单元格内容的方法前言此处举例对单元格操作的读取和写入一、设置单元格的方法introw=0;intcolumn=0;QModelIndexindex=ui->tableView->model().index(row,colunm,QModelIndex);ui->tableView->model()->setData(index,"输入你想输入的内容");二、获取单元格内容的方法 首先获取行列号 QModelIndexindex=ui->tableView->indexAt(QPoint(x,y));introw=index.row();intcolumn

关于QT控件提升后找不到头文件的解决方法

今天跟着教程走,学到QWidget绘制,需要提升控件,但是按照老师的操作做完之后发现出现找不到头文件的bug,在网上查了下说是不能勾选全局包含,我去掉之后还是找不到头文件,再查发现需要再PRO文件里添加头文件目录的包含,但是目前QT好像已经没有PRO文件了,只能在CMake文件中添加头文件目录,在CMake中添加下面这段就可以解决了。INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})出现问题的原因是Qtcreator通过ui文件生成的程序和存放头文件的目录不在一起,但是生成的程序里会在生成目录下找头文件,所以肯定是找不到的。

Qt: ninja: build stopped: subcommand failed.

目前使用的环境如下:OS: Windows11Pro22H222624.1610QtCreator10.0QtCreatorBuildSystem:CMake,Qt6.5.0MinGW64-bit编译信息如下,错误貌似与AotoMoc有关:11:23:34:RunningstepsforprojectErrorRecurrenceApp...11:23:34:Starting:"C:\Qt\Tools\CMake_64\bin\cmake.exe"--buildC:/Users/Administrator/Documents/QTCProjects/build-ErrorRecurrence-

c++ - 转到 http : no such file after sending image from Qt client

我有一个GoAPI,可以保存客户端发送的图像。我知道Go代码在POST请求来自HTML表单时有效。但是,当从我的QtC++客户端发送多部分发布请求时,服务器返回错误http:nosuchfile在客户端,我有一个QPixmap,我将其转换为QByteArray,然后发送,但不知何故我从Go得到了这个错误。我知道当我删除时,客户端发送的数据长度会减少multi_part->append(image_part);因此应该发送QPixmap。去代码:funcapiUploadHandler(whttp.ResponseWriter,req*http.Request){ifreq.Method

c++ - 转到 http : no such file after sending image from Qt client

我有一个GoAPI,可以保存客户端发送的图像。我知道Go代码在POST请求来自HTML表单时有效。但是,当从我的QtC++客户端发送多部分发布请求时,服务器返回错误http:nosuchfile在客户端,我有一个QPixmap,我将其转换为QByteArray,然后发送,但不知何故我从Go得到了这个错误。我知道当我删除时,客户端发送的数据长度会减少multi_part->append(image_part);因此应该发送QPixmap。去代码:funcapiUploadHandler(whttp.ResponseWriter,req*http.Request){ifreq.Method

如何使用NE555设计一个触摸延时灯或开关

今天给大家分享一个使用NE555设计一个触摸延时灯或开关的电路电路图如下,主要的原理就是,555的2脚分压电阻电阻大,分压电压抗干扰差,手触碰会有杂波信号耦合到引脚2,当2脚电压小于1/3VCC时输出信信号为高电平,其它时间为低电平 整个工作状态如下上电后,由于2脚电压为1/2VCC,6和7脚电压为 0V,3脚电压为0V,LED是熄灭的状态 当手触摸到金属片后,人体的杂波信号就有可能使2脚电压 触摸松手后,2脚电压又变为1/2VCC,当6脚电压到达2/3VCC后内部三极管导通,6脚开始放电,LED熄灭 如果想通过这种触摸的方式控制电流比较大的器件,可以后面接继电器